#ifndef _BUOLA_SCENE_CONTROLLERS_CCAMERACONTROLLER_H_
#define _BUOLA_SCENE_CONTROLLERS_CCAMERACONTROLLER_H_

#include <buola/scene/ccontroller.h>

#include <buola/mat/cquat.h>

namespace buola { namespace scene {

class CCameraController : public CController
{
public:
    CCameraController(PCamera pCamera);

private:
    virtual void OnButtonDown(const gui::CMouseEvent &pE);
    virtual void OnButtonUp(const gui::CMouseEvent &pE);
    virtual void OnMouseMove(const gui::CMouseEvent &pE);
    virtual void OnMouseWheel(const gui::CMouseEvent &pE);

private:
    PCamera mCamera;
    
    mat::CVec3d mDragFrom,mDragUp;
    bool mDragging;
    CPoint_d mDragPoint;
};
    
/*namespace scene*/ } /*namespace buola*/ }

#endif
